#pragma once
#include <limits>
#include "inc_windows_h.hpp"

namespace wxx
{
#define WXX_memory_allocator_rebind(AllocatorType) \
	template<class U> struct rebind { typedef AllocatorType<U> other; }

	template<class T>
	class basic_allocator
	{
	public:
		typedef T         value_type;
		typedef T*        pointer;
		typedef T&        reference;
		typedef const T*  const_pointer;
		typedef const T&  const_reference;

		typedef size_t    size_type;
		typedef ptrdiff_t difference_type;

		size_type max_size() const
		{
			return std::numeric_limits<size_type>::max();
		}
	};
};